package movilmax.sia_corp.action;

import java.util.LinkedList;
import java.util.Map;

import movilmax.sia_corp.model.DetalleInvasiones;
import movilmax.sia_corp.model.Invasion;
import movilmax.sia_corp.model.Usuario;
import apli.conectar.Conectar;
import basedatos.Fecha;
import basedatos.Resultado;

import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;

public class ReporteActividadesInvasiones extends ActionSupport {

	private static final long serialVersionUID = -2124850614060375723L;
	
	private LinkedList<Invasion> rpt_lista;
	private String fechai;
	private String fechaf;
	private String zona;
	private String statusInvasion;
	private String responsable;
	private String codI;
	private DetalleInvasiones detalleI;
	//private Fecha F = new Fecha();
	LinkedList<DetalleInvasiones> lista_detTk;
	
	@SuppressWarnings("rawtypes")
	public String consultarActividadesI(){
		
		rpt_lista=new LinkedList<Invasion>();
		String SQL="",c1="",c2="",c3="",c4="";
		Map session = ActionContext.getContext().getSession();
    	Usuario USUARIO = (Usuario) session.get("ses_usuario");
		if(USUARIO==null){
			this.addActionError("La sesion del usuario ha caducado" ); 
			return ERROR;
		}
		Conectar BASE=new Conectar();
		if(!BASE.getMsg().equals("SI")){
			this.addActionError("No hay conexion al servidor");
			return ERROR;
		}
		
	/*-------------------------------------condiciones por filtro------------------------------------*/
		
		if( this.getFechai() !=null && this.getFechaf() !=null ){
			if (!this.getFechai().equals("") && !this.getFechaf().equals("") ){
				c1=" and I.fecha BETWEEN '" + this.getFechai() + "' and  '" + this.getFechaf()+"' " ;
			}
		}
		if(!this.getZona().equals("-1") ){
    		c2=" and Z.cod='"+ this.getZona() +"' " ;
    	}
		
		if(!this.getStatusInvasion().equals("-1") ){
			c3=" and S.cod='"+this.getStatusInvasion()+"' ";
    	}
		
		if(!this.getResponsable().equals("-1") ){
			c4="  and U.usuario='"+this.getResponsable() +"' ";
    	}
		
		/*-------------------------------------fin condiciones por filtro------------------------------------*/		
		SQL="SELECT I.codigo, Z.descripcion as zona, I.responsable, S.descripcion as status, I.fecha, I.hora "+
			"FROM vnt_invasiones I, zonas Z, status_invasiones S, usuarios U "+
			"WHERE I.zona=Z.cod AND I.[status]=S.cod AND I.responsable=U.usuario "+c1+c2+c3+c4;
		Resultado RCS=BASE.getBaseDatos().consultar(SQL);
		Fecha F = new Fecha();
		boolean x=false;
		  if(RCS.RP){
			  do{ 
				  Invasion ITM= new Invasion();
				  ITM.setCodigo(RCS.getCadena("codigo"));
				  ITM.setZona(RCS.getCadena("zona"));
				  ITM.setResponsable(RCS.getCadena("responsable"));
				  ITM.setStatus(RCS.getCadena("status"));
				  ITM.setFecha(F.formateaFecha(RCS.getCadena("fecha"),true));
				  ITM.setHora(RCS.getCadena("hora"));
				  
				  if(!RCS.getCadena("status").equals("0")){
					  x=(x ? false: true);
					  if(x)
					    ITM.setStylo("tabla_fil_normal1");
					  else
						ITM.setStylo("tabla_fil_normal2");  
				  }else{
					  ITM.setStylo("tabla_fil_anulado");
				  }
				  rpt_lista.add(ITM);
			  }while(RCS.sigItem()); 
		  }
		BASE.getBaseDatos().cerrarConexion();
		return SUCCESS;
	
	}

	
	
public String consultarDetallesInvasiones(){
		
		Fecha F = new Fecha();
	  	detalleI=new DetalleInvasiones();
	  	Resultado RCS = new Resultado();
	  	lista_detTk= new LinkedList<>();
	  	boolean x=false;
	  	String SQL;
	  	Map<?, ?> session = ActionContext.getContext().getSession();
    	Usuario USUARIO = (Usuario) session.get("ses_usuario");
    	
    	
		if(USUARIO==null){
			this.addActionError("La sesion del usuario ha caducado" ); 
			return ERROR;
		}
		Conectar BASE=new Conectar();
		if(!BASE.getMsg().equals("SI")){
			this.addActionError("No hay conexion al servidor");
			return ERROR;
		}
		
		SQL="SELECT D.* FROM detalle_invasiones D WHERE D.invasion='"+this.getCodI()+"'  order by item ASC ";
		RCS=BASE.getBaseDatos().consultar(SQL);
		  if(RCS.RP){
			  do{
				   detalleI=new DetalleInvasiones();
				   detalleI.setInvasion(RCS.getCadena("invasion"));
				   detalleI.setUsuario(RCS.getCadena("usuario"));
				   detalleI.setFecha(F.formateaFecha(RCS.getCadena("fecha"), true));
				   detalleI.setHora(RCS.getCadena("hora"));
				   detalleI.setObs(RCS.getCadena("obs"));
				   x=(x ? false: true);
					  if(x)
						  detalleI.setStylo("tabla_fil_normal1");
					  else
						  detalleI.setStylo("tabla_fil_normal2"); 
				   lista_detTk.add(detalleI);
			  }while(RCS.sigItem());
		  }
		  BASE.getBaseDatos().cerrarConexion();
		return SUCCESS;
	}

	
	
	
	
	
	public LinkedList<Invasion> getRpt_lista() {
		return rpt_lista;
	}

	public void setRpt_lista(LinkedList<Invasion> rpt_lista) {
		this.rpt_lista = rpt_lista;
	}

	public String getFechai() {
		return fechai;
	}

	public void setFechai(String fechai) {
		this.fechai = fechai;
	}

	public String getFechaf() {
		return fechaf;
	}

	public void setFechaf(String fechaf) {
		this.fechaf = fechaf;
	}

	public String getZona() {
		return zona;
	}

	public void setZona(String zona) {
		this.zona = zona;
	}

	public String getStatusInvasion() {
		return statusInvasion;
	}

	public void setStatusInvasion(String statusInvasion) {
		this.statusInvasion = statusInvasion;
	}

	public String getResponsable() {
		return responsable;
	}

	public void setResponsable(String responsable) {
		this.responsable = responsable;
	}

	public DetalleInvasiones getDetalleI() {
		return detalleI;
	}

	public void setDetalleI(DetalleInvasiones detalleI) {
		this.detalleI = detalleI;
	}

	public LinkedList<DetalleInvasiones> getLista_detTk() {
		return lista_detTk;
	}

	public void setLista_detTk(LinkedList<DetalleInvasiones> lista_detTk) {
		this.lista_detTk = lista_detTk;
	}

	public String getCodI() {
		return codI;
	}

	public void setCodI(String codI) {
		this.codI = codI;
	}
	
	
	

}
